[INFO] cloning repository https://github.com/doublegate/rustyG3N
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/doublegate/rustyG3N" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoublegate%2FrustyG3N", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoublegate%2FrustyG3N'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fa98b3a3427cbe9223eb8bea09144e486836bc57
[INFO] checking doublegate/rustyG3N against try#a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399 for pr-145770
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoublegate%2FrustyG3N" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/doublegate/rustyG3N
[INFO] finished tweaking git repo https://github.com/doublegate/rustyG3N
[INFO] tweaked toml for git repo https://github.com/doublegate/rustyG3N written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/doublegate/rustyG3N on toolchain a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/doublegate/rustyG3N already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 23c6fe43bc59806db2647b0429e9646c2d3ce76276b458a586c3106d0392df42
[INFO] running `Command { std: "docker" "start" "-a" "23c6fe43bc59806db2647b0429e9646c2d3ce76276b458a586c3106d0392df42", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "23c6fe43bc59806db2647b0429e9646c2d3ce76276b458a586c3106d0392df42", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "23c6fe43bc59806db2647b0429e9646c2d3ce76276b458a586c3106d0392df42", kill_on_drop: false }`
[INFO] [stdout] 23c6fe43bc59806db2647b0429e9646c2d3ce76276b458a586c3106d0392df42
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b08d620971e02dc39420f106b8867162cb3a7cc5db52f2390909a9eb41d57fff
[INFO] running `Command { std: "docker" "start" "-a" "b08d620971e02dc39420f106b8867162cb3a7cc5db52f2390909a9eb41d57fff", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.94
[INFO] [stderr]    Compiling unicode-ident v1.0.17
[INFO] [stderr]    Compiling libc v0.2.170
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling xml-rs v0.8.25
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]     Checking once_cell v1.20.3
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking smallvec v1.14.0
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]     Checking scoped-tls v1.0.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking downcast-rs v1.2.1
[INFO] [stderr]    Compiling getrandom v0.3.1
[INFO] [stderr]     Checking libloading v0.8.6
[INFO] [stderr]     Checking bitflags v2.9.0
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]     Checking xcursor v0.3.8
[INFO] [stderr]     Checking raw-window-handle v0.6.2
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling cc v1.2.16
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling quote v1.0.39
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling minifb v0.28.0
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]     Checking tempfile v3.17.1
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking rustyG3N v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/vdp.rs:188:34
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 let sprite_top = ((y_pos as i32) - 128);
[INFO] [stdout]     |                                  ^                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 188 -                 let sprite_top = ((y_pos as i32) - 128);
[INFO] [stdout] 188 +                 let sprite_top = (y_pos as i32) - 128;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/vdp.rs:191:41
[INFO] [stdout]     |
[INFO] [stdout] 191 |                     let row_in_sprite = ((scanline as i32) - sprite_top);
[INFO] [stdout]     |                                         ^                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 191 -                     let row_in_sprite = ((scanline as i32) - sprite_top);
[INFO] [stdout] 191 +                     let row_in_sprite = (scanline as i32) - sprite_top;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/vdp.rs:193:25
[INFO] [stdout]     |
[INFO] [stdout] 193 |                         ((x_pos as i32) - 128),
[INFO] [stdout]     |                         ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 193 -                         ((x_pos as i32) - 128),
[INFO] [stdout] 193 +                         (x_pos as i32) - 128,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/vdp.rs:188:34
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 let sprite_top = ((y_pos as i32) - 128);
[INFO] [stdout]     |                                  ^                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 188 -                 let sprite_top = ((y_pos as i32) - 128);
[INFO] [stdout] 188 +                 let sprite_top = (y_pos as i32) - 128;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/vdp.rs:191:41
[INFO] [stdout]     |
[INFO] [stdout] 191 |                     let row_in_sprite = ((scanline as i32) - sprite_top);
[INFO] [stdout]     |                                         ^                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 191 -                     let row_in_sprite = ((scanline as i32) - sprite_top);
[INFO] [stdout] 191 +                     let row_in_sprite = (scanline as i32) - sprite_top;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/vdp.rs:193:25
[INFO] [stdout]     |
[INFO] [stdout] 193 |                         ((x_pos as i32) - 128),
[INFO] [stdout]     |                         ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 193 -                         ((x_pos as i32) - 128),
[INFO] [stdout] 193 +                         (x_pos as i32) - 128,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right_aligned`
[INFO] [stdout]    --> src/vdp.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let right_aligned = (h_pos_reg & 0x80) != 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_aligned`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right_aligned`
[INFO] [stdout]    --> src/vdp.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let right_aligned = (h_pos_reg & 0x80) != 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_aligned`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]  --> src/display.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Display {
[INFO] [stdout]   |            ------- fields in this struct
[INFO] [stdout] 4 |     window: Window,
[INFO] [stdout] 5 |     width: usize,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 6 |     height: usize,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cycles` is never read
[INFO] [stdout]   --> src/vdp.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct Vdp {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     cycles: u32,             // Total cycles in the current frame (tracked externally)
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `rustyG3N` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `rusty_g3_n`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]  --> src/display.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Display {
[INFO] [stdout]   |            ------- fields in this struct
[INFO] [stdout] 4 |     window: Window,
[INFO] [stdout] 5 |     width: usize,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 6 |     height: usize,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cycles` is never read
[INFO] [stdout]   --> src/vdp.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct Vdp {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     cycles: u32,             // Total cycles in the current frame (tracked externally)
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/vdp.rs:188:34
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 let sprite_top = ((y_pos as i32) - 128);
[INFO] [stdout]     |                                  ^                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 188 -                 let sprite_top = ((y_pos as i32) - 128);
[INFO] [stdout] 188 +                 let sprite_top = (y_pos as i32) - 128;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/vdp.rs:191:41
[INFO] [stdout]     |
[INFO] [stdout] 191 |                     let row_in_sprite = ((scanline as i32) - sprite_top);
[INFO] [stdout]     |                                         ^                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 191 -                     let row_in_sprite = ((scanline as i32) - sprite_top);
[INFO] [stdout] 191 +                     let row_in_sprite = (scanline as i32) - sprite_top;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/vdp.rs:193:25
[INFO] [stdout]     |
[INFO] [stdout] 193 |                         ((x_pos as i32) - 128),
[INFO] [stdout]     |                         ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 193 -                         ((x_pos as i32) - 128),
[INFO] [stdout] 193 +                         (x_pos as i32) - 128,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Exception`
[INFO] [stdout]  --> src/main.rs:9:36
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::m68k_cpu::{CPU as M68K, Exception};
[INFO] [stdout]   |                                    ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IoDevice`
[INFO] [stdout]   --> src/main.rs:11:27
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::z80_cpu::{Z80, IoDevice};
[INFO] [stdout]    |                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/vdp.rs:188:34
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 let sprite_top = ((y_pos as i32) - 128);
[INFO] [stdout]     |                                  ^                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 188 -                 let sprite_top = ((y_pos as i32) - 128);
[INFO] [stdout] 188 +                 let sprite_top = (y_pos as i32) - 128;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/vdp.rs:191:41
[INFO] [stdout]     |
[INFO] [stdout] 191 |                     let row_in_sprite = ((scanline as i32) - sprite_top);
[INFO] [stdout]     |                                         ^                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 191 -                     let row_in_sprite = ((scanline as i32) - sprite_top);
[INFO] [stdout] 191 +                     let row_in_sprite = (scanline as i32) - sprite_top;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/vdp.rs:193:25
[INFO] [stdout]     |
[INFO] [stdout] 193 |                         ((x_pos as i32) - 128),
[INFO] [stdout]     |                         ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 193 -                         ((x_pos as i32) - 128),
[INFO] [stdout] 193 +                         (x_pos as i32) - 128,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Exception`
[INFO] [stdout]  --> src/main.rs:9:36
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::m68k_cpu::{CPU as M68K, Exception};
[INFO] [stdout]   |                                    ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IoDevice`
[INFO] [stdout]   --> src/main.rs:11:27
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::z80_cpu::{Z80, IoDevice};
[INFO] [stdout]    |                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right_aligned`
[INFO] [stdout]    --> src/vdp.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let right_aligned = (h_pos_reg & 0x80) != 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_aligned`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right_aligned`
[INFO] [stdout]    --> src/vdp.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let right_aligned = (h_pos_reg & 0x80) != 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_aligned`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]  --> src/display.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Display {
[INFO] [stdout]   |            ------- fields in this struct
[INFO] [stdout] 4 |     window: Window,
[INFO] [stdout] 5 |     width: usize,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 6 |     height: usize,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_key_down` is never used
[INFO] [stdout]   --> src/display.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Display {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_key_down(&self, key: minifb::Key) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width` and `height` are never read
[INFO] [stdout]  --> src/display.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Display {
[INFO] [stdout]   |            ------- fields in this struct
[INFO] [stdout] 4 |     window: Window,
[INFO] [stdout] 5 |     width: usize,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 6 |     height: usize,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_key_down` is never used
[INFO] [stdout]   --> src/display.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Display {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_key_down(&self, key: minifb::Key) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/m68k_cpu.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub enum Operation {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 147 |     Eor,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     Bclr,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     Tas,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 173 |     Rol,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 174 |     Roxl,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     And,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 181 |     Or,
[INFO] [stdout]     |     ^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     Jmp,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 190 |     Adda,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 191 |     Suba,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 192 |     Mulu,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 193 |     Cmp,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 194 |     Scc,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 195 |     Dbcc,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 196 |     Pea,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 197 |     Link,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 198 |     Unlk,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 199 |     NopAlt,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     Lsl,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     RoxlMem,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 227 |     RoxrMem,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     LslMem,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Operation` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `request_interrupt` and `get_interrupt_ack` are never used
[INFO] [stdout]    --> src/m68k_cpu.rs:457:12
[INFO] [stdout]     |
[INFO] [stdout] 274 | impl<M: M68kMemory> CPU<M> {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 457 |     pub fn request_interrupt(&mut self, level: u8, vector: Option<u8>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn get_interrupt_ack(&self) -> (Option<u8>, BusState) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/z80_cpu.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct Registers {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub b_alt: u8,  // Alternate B register
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 59 |     pub c_alt: u8,  // Alternate C register
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 60 |     pub d_alt: u8,  // Alternate D register
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 61 |     pub e_alt: u8,  // Alternate E register
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 62 |     pub h_alt: u8,  // Alternate H register
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 63 |     pub l_alt: u8,  // Alternate L register
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub i: u8,      // Interrupt vector register
[INFO] [stdout]    |         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_af` and `set_af` are never used
[INFO] [stdout]    --> src/z80_cpu.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 72  | impl Registers {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_af(&self) -> u16 { ((self.a as u16) << 8) | self.f as u16 }
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn set_af(&mut self, value: u16) { self.a = (value >> 8) as u8; self.f = value as u8; }
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/m68k_cpu.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub enum Operation {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 147 |     Eor,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     Bclr,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     Tas,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 173 |     Rol,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 174 |     Roxl,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     And,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 181 |     Or,
[INFO] [stdout]     |     ^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     Jmp,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 190 |     Adda,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 191 |     Suba,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 192 |     Mulu,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 193 |     Cmp,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 194 |     Scc,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 195 |     Dbcc,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 196 |     Pea,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 197 |     Link,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 198 |     Unlk,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 199 |     NopAlt,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     Lsl,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     RoxlMem,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 227 |     RoxrMem,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     LslMem,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Operation` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DummyIoDevice` is never constructed
[INFO] [stdout]    --> src/z80_cpu.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub struct DummyIoDevice;
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `request_interrupt` and `get_interrupt_ack` are never used
[INFO] [stdout]    --> src/m68k_cpu.rs:457:12
[INFO] [stdout]     |
[INFO] [stdout] 274 | impl<M: M68kMemory> CPU<M> {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 457 |     pub fn request_interrupt(&mut self, level: u8, vector: Option<u8>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn get_interrupt_ack(&self) -> (Option<u8>, BusState) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/z80_cpu.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct Registers {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub b_alt: u8,  // Alternate B register
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 59 |     pub c_alt: u8,  // Alternate C register
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 60 |     pub d_alt: u8,  // Alternate D register
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 61 |     pub e_alt: u8,  // Alternate E register
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 62 |     pub h_alt: u8,  // Alternate H register
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 63 |     pub l_alt: u8,  // Alternate L register
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub i: u8,      // Interrupt vector register
[INFO] [stdout]    |         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/z80_cpu.rs:1454:12
[INFO] [stdout]      |
[INFO] [stdout] 142  | impl Z80 {
[INFO] [stdout]      | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1454 |     pub fn trigger_nmi(&mut self, memory: &mut dyn Z80Memory) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1464 |     pub fn trigger_int(&mut self, memory: &mut dyn Z80Memory, io: &mut dyn IoDevice, bus_value: u8) -> u8 {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1498 |     pub fn get_a(&self) -> u8 { self.registers.a }
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] 1499 |     pub fn get_b(&self) -> u8 { self.registers.b }
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] 1500 |     pub fn get_bc(&self) -> u16 { self.registers.get_bc() }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1501 |     pub fn get_de(&self) -> u16 { self.registers.get_de() }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1502 |     pub fn get_hl(&self) -> u16 { self.registers.get_hl() }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1503 |     pub fn get_sp(&self) -> u16 { self.registers.sp }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1504 |     pub fn get_pc(&self) -> u16 { self.registers.pc }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1505 |     pub fn get_ix(&self) -> u16 { self.registers.ix }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1506 |     pub fn get_iy(&self) -> u16 { self.registers.iy }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1507 |     pub fn get_flag(&self, flag: u8) -> bool { self.registers.get_flag(flag) }
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] 1508 |     pub fn is_halted(&self) -> bool { self.halted }
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1511 |     pub fn set_a(&mut self, value: u8) { self.registers.a = value }
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] 1512 |     pub fn set_sp(&mut self, value: u16) { self.registers.sp = value }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1513 |     pub fn set_flag(&mut self, flag: u8, value: bool) { self.registers.set_flag(flag, value) }
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_af` and `set_af` are never used
[INFO] [stdout]    --> src/z80_cpu.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 72  | impl Registers {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_af(&self) -> u16 { ((self.a as u16) << 8) | self.f as u16 }
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn set_af(&mut self, value: u16) { self.a = (value >> 8) as u8; self.f = value as u8; }
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cycles` is never read
[INFO] [stdout]   --> src/vdp.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct Vdp {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     cycles: u32,             // Total cycles in the current frame (tracked externally)
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DummyIoDevice` is never constructed
[INFO] [stdout]    --> src/z80_cpu.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub struct DummyIoDevice;
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_data`, `check_hblank_interrupt`, `check_vblank_interrupt`, `reset_interrupt_flags`, and `is_dma_active` are never used
[INFO] [stdout]    --> src/vdp.rs:350:12
[INFO] [stdout]     |
[INFO] [stdout] 26  | impl Vdp {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub fn read_data(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     pub fn check_hblank_interrupt(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn check_vblank_interrupt(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 367 |     pub fn reset_interrupt_flags(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |     pub fn is_dma_active(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/z80_cpu.rs:1454:12
[INFO] [stdout]      |
[INFO] [stdout] 142  | impl Z80 {
[INFO] [stdout]      | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1454 |     pub fn trigger_nmi(&mut self, memory: &mut dyn Z80Memory) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1464 |     pub fn trigger_int(&mut self, memory: &mut dyn Z80Memory, io: &mut dyn IoDevice, bus_value: u8) -> u8 {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1498 |     pub fn get_a(&self) -> u8 { self.registers.a }
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] 1499 |     pub fn get_b(&self) -> u8 { self.registers.b }
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] 1500 |     pub fn get_bc(&self) -> u16 { self.registers.get_bc() }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1501 |     pub fn get_de(&self) -> u16 { self.registers.get_de() }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1502 |     pub fn get_hl(&self) -> u16 { self.registers.get_hl() }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1503 |     pub fn get_sp(&self) -> u16 { self.registers.sp }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1504 |     pub fn get_pc(&self) -> u16 { self.registers.pc }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1505 |     pub fn get_ix(&self) -> u16 { self.registers.ix }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1506 |     pub fn get_iy(&self) -> u16 { self.registers.iy }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1507 |     pub fn get_flag(&self, flag: u8) -> bool { self.registers.get_flag(flag) }
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] 1508 |     pub fn is_halted(&self) -> bool { self.halted }
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1511 |     pub fn set_a(&mut self, value: u8) { self.registers.a = value }
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] 1512 |     pub fn set_sp(&mut self, value: u16) { self.registers.sp = value }
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 1513 |     pub fn set_flag(&mut self, flag: u8, value: bool) { self.registers.set_flag(flag, value) }
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cycles` is never read
[INFO] [stdout]   --> src/vdp.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct Vdp {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     cycles: u32,             // Total cycles in the current frame (tracked externally)
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_data`, `check_hblank_interrupt`, `check_vblank_interrupt`, `reset_interrupt_flags`, and `is_dma_active` are never used
[INFO] [stdout]    --> src/vdp.rs:350:12
[INFO] [stdout]     |
[INFO] [stdout] 26  | impl Vdp {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub fn read_data(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     pub fn check_hblank_interrupt(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn check_vblank_interrupt(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 367 |     pub fn reset_interrupt_flags(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |     pub fn is_dma_active(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.58s
[INFO] running `Command { std: "docker" "inspect" "b08d620971e02dc39420f106b8867162cb3a7cc5db52f2390909a9eb41d57fff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b08d620971e02dc39420f106b8867162cb3a7cc5db52f2390909a9eb41d57fff", kill_on_drop: false }`
[INFO] [stdout] b08d620971e02dc39420f106b8867162cb3a7cc5db52f2390909a9eb41d57fff
